package pe.com.ValoracionVivienda.service.impl;

import javax.persistence.NoResultException;
import javax.persistence.NonUniqueResultException;
import javax.persistence.TypedQuery;

import pe.com.ValoracionVivienda.domain.entities.Usuario;
import pe.com.ValoracionVivienda.service.interfaces.UsuarioService;

public class UsuarioServiceJpaImpl extends GenericServiceJpaImpl<Integer, Usuario> 
	implements UsuarioService {

	public UsuarioServiceJpaImpl() {
		super();
	}
	
	@Override
	public Usuario getUsuarioPorNickname(String nickname) {
		Usuario usuario = null;
		TypedQuery<Usuario> query = 
				em.createQuery("SELECT u FROM Usuario u WHERE u.nickname = :nickname", Usuario.class);
		query.setParameter("nickname", nickname);
		
		try {
			usuario = query.getSingleResult();
		} catch (NoResultException e) {
			usuario = null;
		} catch (NonUniqueResultException e) {
			usuario = query.getResultList().get(0);
		}
		
		return usuario;
	}
}
